Control method of control device conducting data input and output to storage devices, and control device used therefor

ABSTRACT

When a request to conduct format process is received from the external device, a write history management table which records histories of conducted writing processes in block units is referred to confirm whether or not writing process has been conducted to the block. As a result of the confirmation, the format process is conducted to only a block, which a writing process has not been conducted, and a history of conducting the writing process of the formatted block is recorded. In conducting the format process, when a request is received to conduct reading process and/or writing process from the external device, the write history management table is referred, and only in a case that a writing process has been conducted to said block, the disk array device is accessed and a reading process and/or writing process is conducted to the block.

CROSS REFERENCE TO RELATED APPLICATION

[0001] The present application claims priority upon Japanese Patent Application No. 2001-392655 filed on Dec. 25, 2001 and Japanese Patent Application No. 2002-039208 filed on Feb. 15, 2002, which are herein incorporated by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to a controlling method of a control device controlling data input and output to a plurality of storage devices, and a control device used in the method, and particularly relates to a disk array device, and a controlling method thereof.

[0004] 2. Description of the Related Art

[0005] Recently, there are more opportunities to handle large data such as meteorological information, and movies or sounds in digital broadcasting of high precision television. As a result, larger capacities are required for external storage devices that store these data. When reliability of the data storage is also required, a disk array device referred to as RAID (Redundant Arrays of Inexpensive Disks) equipped with a plurality of magnetic disks is used. Thus, efforts, for increasing process ability by dispersing and storing data in a plurality of magnetic disks and for increasing reliability by storing redundant data, are made.

[0006] This disk array device is disclosed in the paper “A case for Redundant Arrays of Inexpensive Disks (RAID)”, David A. Patterson, Garth Gibson, and Randy H Katz, Computer Science Division Department of Electrical Engineering and Computer Sciences, University of California Berkeley.

[0007] As described above, this disk array device has a larger capacity, higher conductance, and higher reliability as compared to a device with a single magnetic disk. Therefore, with expectation for these features, the disk array devices are being employed for use in mass media institutions such as television stations, banking facilities such as banks, medical institutions such as hospitals, research institutes such as research laboratories and education institutes such as universities.

[0008] As is well known, at the time of initial installation of the disk array device, since parity calculation and the like are necessary, a process of writing initialization data to all storage regions in the disk unit (storage device), namely a logic format, is necessary.

[0009] Regarding the logic format, there are a format method called a simple format (quick format) and a format method with data-ensuring function.

[0010] In simple format, the portion corresponding to data in the object to be formatted is not examined, and only the portion corresponding to the header is rewritten. As an example of using the simple format, a technique disclosed in Japanese Patent Application Laid-open No. Hei 9-330180 is referred. With the technique described in this publication, a generation state of parity is managed for each stripe group in the so-called RAID (Redundant Array of Inexpensive Disks), and by determining the algorithm of parity calculation when data is written according to the state, the requirement of the logic format is abolished at initial installation.

[0011] However, although simple format has an advantage of completing format instantly, its reliability is low and an error may possibly occur in data that the user has written. In particular, if there is an error such as a letter-encoding or -decoding error, the data cannot be recovered.

[0012] In order to avoid such problems, it is necessary to ensure data at the time of format. As a method of format with data-ensuring function, there are the following three kinds of methods (a), (b) and (c) as a process to a format request from a host device. (a) Data as an initial value is written in the data storing area to be formatted in. (b) When a RAID composition is employed, redundant data calculated from data as an initial value is written in all of redundant data storing region to be formatted. (c) Both (a) and (b) are conducted.

[0013] When such format with data-ensuring function is employed to an external storing device (including disk array device) requiring reliability, an order to plural magnetic disk devices and a format process time proportional to a size of a region to be formatted are required.

[0014] As an improved technique of such a format process, in the Japanese Patent Application Laid-open No. Hei 3-4315, a firmware in a sub system is provided with a format function in respect to a format request from a host device. Thus, the device may conduct formatting in the subsystem independently from the host device.

[0015] A format for securing reliability in this way is carried out mainly when the external storage device is installed, or when plural magnetic disks are increased and data region for users is newly increased.

[0016] When a disk array device is initially installed and the format with data-ensuring function is conducted, all of areas for storing data that are mounted to a magnetic disk device must be formatted at once. There arises a problem that format time proportional to an increase of storing capacity is required.

[0017] In recent systems, storage capacity is astonishingly increasing, and it is not rare to require several days for the entire format. Further, when increasing magnetic disks, it is necessary to format all increased areas for storing data, and there is a problem that a formatting time proportional to increase of storage capacity is required. When they are formatting, the system cannot respond to data input and output orders from external devices.

[0018] In regards to a capacity of a magnetic disks that are assumed to continue increasing, simple format has an advantage that formatting is completed instantaneously, while it has a disadvantage that reliability decreases, as is described. On the other hand, in format with data-ensuring function, there is an advantage that reliability is high, while there is a disadvantage that time taken until format is complete is extremely long.

[0019] With the technique disclosed in Japanese Patent Application Laid-open No. Hei 10-3358, in response to a format request from a host device, completion of format process is instantly reported, and format process is conducted in a subsystem. However, in this technique, the subsystem that is in the process of formatting cannot receive an I/O request from the host computer and conduct it.

SUMMARY OF THE INVENTION

[0020] One of the objects of the present invention is to provide a disk array device, and a control method thereof to solve the above problem.

[0021] In order to achieve the above object, in the present invention, when a disk array device with a plurality of disk devices which is connected to an external device, receives a request to conduct format process from the external device, a write history management table which records histories of conducted writing processes in block units is referred to confirm whether or not there is a data writing process regarding blocks. As a result of the confirmation, format process is not conducted to the blocks to which a writing process has already been conducted, while format process is conducted only to the blocks to which a writing process has not been conducted, and a history of having already conducted the writing process is recorded for the formatted blocks in the write history management table to which a format process has been conducted, and in a conducting state of the format process, when a request to conduct a reading process and/or a writing process is received from the external device, the write history management table is referred, and only in a case that a writing process has been conducted to said blocks, the disk array device is accessed and the reading process and/or the writing process is conducted to said blocks.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] For a more complete understanding of the present invention and the advantages thereof, the following description is referred taken in conjunction with the accompanying drawings wherein:

[0023]FIG. 1 is a block diagram showing an example of a composition of a disk array device according to an embodiment of the present invention;

[0024]FIG. 2 is a figure showing a schematic structure of a disk array of hard disks according to an embodiment of the present invention;

[0025]FIG. 3 is a figure showing a data structure of a disk array of hard disks composing of five magnetic disks and having redundant data according to an embodiment of the present invention;

[0026]FIG. 4 is a table showing an outline of a data structure of a write history management table 113 according to an embodiment of the present invention;

[0027]FIG. 5 is a flowchart showing operations of a formatting means according to an embodiment of the present invention;

[0028]FIG. 6 is a flowchart showing operations of read means according to an embodiment of the present invention;

[0029]FIG. 7 is a flowchart showing operations of write means according to an embodiment of the present invention;

[0030]FIGS. 8A to 8C are tables showing the state of transition of a stripe that is created in a cache section when write means is operating according to an embodiment of the present invention;

[0031]FIG. 9 is a diagram showing a schematic structure of a disk array device according to an embodiment of the present invention;

[0032]FIG. 10 is a diagram explaining a concept of data blocks, a stripe, etc. which are formed on the magnetic disk of the disk array device according to an embodiment of the present invention;

[0033]FIG. 11 is a diagram showing a data write history according to an embodiment of the present invention;

[0034]FIG. 12 is a flowchart describing operations of the disk array device according to an embodiment of the present invention;

[0035]FIG. 13 is a flowchart explaining processes that are operated when the disk array device receives a data read request from an external device according to an embodiment of the present invention;

[0036]FIG. 14 is a flowchart explaining a copy process utilizing data write history according to an embodiment of the present invention;

[0037]FIG. 15 is a diagram explaining concepts of such as data blocks, a stripe, a parity block, etc. formed on a magnetic disk of the disk array device according to an embodiment of the present invention; and

[0038]FIG. 16 is a flowchart explaining operations of the disk array device according to an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0039] In the first embodiment according to the present invention, there is provided a format technique that has advantages of both a simple format and a format with data-ensuring function described above. That is, there is provided a technique by which in a state of conducting format with data-ensuring function to an entire disk array device, a read (read out) request and a write (write in) request may be received from a host device (external device). With this formatting means, format that has a high reliability and is completed for a short time becomes possible.

[0040] The disk array device has a magnetic disk device (disk device) comprising a plurality of magnetic disks and a disk controller (control device) controlling the disk device.

[0041] Data that has been split into block units and redundant data derived from the data are dispersed and stored in the plurality of magnetic disks.

[0042] The disk controller comprises a host channel controlling section, a command processing section, a cache section (cache memory), and a middle controlling section. The host channel controlling section receives a request of I/O, etc. from the host device (external device). The command processing section processes the request received from the host device. The cache section may be accessed at a higher speed than the magnetic disk. A disk channel controlling section issues an I/O request to the magnetic disks. A middle controlling section is composed of a processor known as a hardware structure and a control memory, and controls a plurality of magnetic disks.

[0043] The middle controlling section has read (readout) means, write (write in) means, check code controlling means, formatting means, and a write history management table. The respective means are realized by the operation of the processor based on control data and a control program, stored in the control memory. The read means reads data from the magnetic disks. The write means writes data to the magnetic disks. The check code controlling means reads and writes redundant data to the magnetic disks. The formatting means formats the magnetic disks.

[0044] The write history management table is stored in the control memory and includes management information for judging whether or not there is writing of data to the magnetic disks. Specifically, in managing data regions (both a user data region and a redundant data region), the write history management table splits the region into block units, and discriminates between blocks in which data have been written at least once and blocks in which data have not. This management is known as a bitmap management.

[0045] The read means determines whether or not there exists certain data in the cache section and, when there is already the data in the cache section, transfers it to the host device from the cache. On the contrary, when there is no such data in the cache section, management information in the write history management table is referred. For blocks to which writing has not been conducted, a predetermined data is created and sent to the host device and for blocks to which writing has been conducted, after reading data from the magnetic disk and writing to the cache section, the data is transferred to the host device.

[0046] The write means refers to management information of the write history management table. For writing to the area to which writing has been conducted before, the write means conducts the same process as the conventional writing process. On the other hand, for writing to an area to which writing has not been conducted before, the write means creates a format data in a smallest unit in the cache section and receives write data from the host device. That is, for an area which has not been formatted, the write means does not write directly to a magnetic disk which takes time to be accessed like a conventional writing process, but creates data in the smallest stripe unit in the cache which may be accessed at a high speed, and report write completion to the host device. Independent from the host device, the write means writes data in a stripe in the cache to the magnetic disk in stripe units. As a result, before the write means writes data to the magnetic disk, it responds to the host device by reporting of write completion. Thus, delay of process response to the host device becomes smaller. Further, the write means writes total of data of the cache section to the magnetic disk in stripe units. Thus, when the write means writes only a part of the stripe to the magnetic disk, a series of processes of reading out, revising and writing between the cache section and the magnetic disks becomes unnecessary.

[0047] While the formatting means writes predetermined data to both the user data region and the redundant data region, it updates management information of the write history management table. In respect to the request to conduct format from the host device, completion is instantly reported (to the host device), so that it may respond to an I/o request from the host device.

[0048] When there is no request for I/O, etc. from the host device, format of the disk array device system proceeds by the formatting means writing predetermined data to the user data region and the redundant data region. According to this process situation, the formatting means changes the management information (block units) of the write history management table from “there is no writing of data” to “there is writing of data”.

[0049] During this format operation, when an I/O request from the host device occurs, by using the read means and the write means, format of the disk array device is conducted in parallel with the I/O process from the host device, and finally format in the disk array device system is completed. Thus, highly reliable format which may not be achieved by the above described simple format method may be completed. Further, since the command processing section reports of the format completion to the host device almost instantaneously, the size of the storage capacity of the area for storing data and the area for storing the redundant data do not influence the format.

[0050] Further, the present inventors obtained an idea of a novel technique which may utilize a control device controlling data input and output to a plurality of storage devices such as the disk array device without logic format at the time of initial installation, etc. and embodied it. This is completely different from a conventional technique such as those stated in the above laid-open publications.

[0051] Thus, the second embodiment according to the present invention aims at providing an operating method of a control device controlling data input and output to the plurality of storage devices and a control device used in this method, in which the control device controlling data input and output to the plurality of storage devices such as the disk array device is made usable without conducting logic format at the time of initial installation, etc.

[0052] In order to achieve this object, the data input and output to the plurality of storage devices is controlled by the method of the control device of the present invention, characterized in that data is input and output in block units into which a storage region of the storage device is divided, the data is stored on whether or not there has been data writing in the past in the plurality of data stripes formed by data blocks over the plurality of storage devices and, in writing data to the storage device, in a case a writing process has not been conducted in the past to the data stripe to which the data block to be written belongs, the data is written to the data block to be written, and initialization data is written to other data blocks belonging to the data stripe to which the data block belongs.

[0053] <Embodiment 1>

[0054]FIG. 1 shows a schematic block diagram of an entire structure of an embodiment of the present invention. A disk array device 102 comprises a disk controller 103 and one or a plurality of subgroups of hard disks 114. This subgroup of hard disks 114 is composed of N (N is a natural number) magnetic disks 108.

[0055] The disk controller 103 comprises a host channel controlling section 104, a command processing section 105, a cache section 106, a middle controlling section 107, and a disk channel controlling section 115. The host channel controlling section 104 is connected to a host device 101 and receives a request of I/O, etc. The command processing section 105 processes the request that the host channel controlling section 104 receives. The cache section 106 comprises a high-speed memory for data cache and may be accessed at a higher speed than a magnetic disk. The middle controlling section 107 controls a plurality of magnetic disks 108.

[0056] The disk channel controlling section 115 issues an I/O request to the magnetic disk. As described above, the middle controlling section 107 comprises a control memory and a processor as a hardware structure, and comprises a read means 109, a write means 110, a check code controlling means 111, a formatting means 112, and a write history management table 113, as a software structure. Each of these means 109 to 112 are realized by the processor operating based on control data or a control program stored in the control memory. The write history management table 113 is stored in the control memory. The read means 109 reads data from the magnetic disk 108. The write means 110 writes data to the magnetic disk 108. The check code controlling means 111 reads and writes redundant data to the magnetic disk 108. The formatting means 112 formats the magnetic disk 108. The write history management table 113 includes management information for judging whether or not data has been written in the magnetic disk 108.

[0057]FIG. 2 shows a schematic data structure of the subgroup of hard disks 114. The subgroup of hard disks 114 is structured of N magnetic disks 108. Further, this subgroup of hard disks 114 is also composed of M (M is a natural number) stripe (block) arrays 201. One data stripe 201 is composed of the same number of N blocks 202 as the magnetic disk 108. One block 202 is composed of one or a plurality of segments 203. Data is read and written in segment units 203.

[0058] As a specific example of a data structure shown in FIG. 2, a data structure of a subgroup of hard disks 114 that is composed of five magnetic disks 108 (N=5) and includes redundant data is shown in FIG. 3. As shown in FIG. 2, data is split into data stripe units 201, a block 202, and a segment 203 (in order of size), and stored in the magnetic disk 108. In the data structure shown in FIG. 3 there exists redundant data, but a structure of a subgroup of hard disks 114 without redundant data is possible. Further, the placement of redundant data in FIG. 3 is one example, and as long as it is in the same data stripe, it may exist in any magnetic disk.

[0059] Next, FIG. 4 shows an outline of a data structure of the write history management table 113. For the M data stripes 201 existing in a certain subgroup of hard disks 114, there are prepared history flags 301 respectively. When the history flag 301 is “0”, it shows that there is no history of data writing in the corresponding data stripe, that is, data has not been written even once. Further, when the history flag 301 is “1”, it shows that there is a history of data writing in the data stripe, that is, data has been written at least once.

[0060] A specific format process is described in a flowchart in FIG. 5 of operations of the formatting means 112. Formatting means 112 operates when a format request is given to the disk array device 102 from a host device 101, etc. When the formatting means 112 receives a request to conduct format, only the smallest area like management information relating to a disk capacity is formatted, and the host device 101 is reported instantly of completion of format (501).

[0061] Then, after the completing a report of the end of format, the formatting means 112 starts the format process from a data stripe with number “1” (number i=1) (501). The formatting means 112 proceeds the format process in data stripe units, and ends when the process is completed until the last data stripe (number i=m) (510).

[0062] As a specific operation of this format process, first, a history flag 301 of the data stripe in the write history management table 113 is referred (503), and when there is no write history (504: NO), format of the entire data stripe is conducted (505). Then, the history flag 301 of the data stripe which conducts format is changed to “1” (there is history of data writing) (506), and the number of the data stripe which is an object of format process is incremented (508), and it is confirmed whether or not processes to all data stripes are completed (i=m?). When the process to all data stripes has not been completed (i<m) yet, it moves on to the process of the next data stripe (509→503). On the contrary, when processes to all data stripes are completed (i=m), process by the formatting means is completed (509→510). On the other hand, in the case of a data stripe that has a write history in the write history management table 113 (504: YES), this data stripe has already been written with some kind of data by the write means 110. Therefore, this data stripe is processed with format skip (that is, do nothing) (504→507), and the above described processes after step 508 are conducted.

[0063] Next, a specific reading process is described. The flowchart of FIG. 6 shows the operations of the read means 109. This read means 109 operates when the disk array device 102 is given a read request from the host device 101. In this embodiment, even in a state where format process is being conducted to the magnetic disk 108, this reading operation may be conducted.

[0064] First, as shown in FIG. 6, it is determined whether or not there exists data requested from the host device 101 in the cache section 106 (601). When there already exists data in the cache section 106 (&quot;data hit&quot;) (601: YES), the data is transferred from the cache section 106 to the host device 101 (606), and this host device 101 is reported of the end of the reading process (606) to complete the process (608).

[0065] On the other hand, when data does not exist in the cache section 106 (601: NO), the history flag 301 of the data stripe in the write history management table 113 is referred (602), when there is a writing history (603: there YES), data is read from the segment 203 in the magnetic disk 108 to the cache section 106 (605), thereafter data is transferred from the cache section 106 to the host device 101 (606). The end of reading process is reported to the host device 101 (607) to complete the process (608).

[0066] On the other hand, as a result of referring the history flag 301 of the data stripe in the write history management table 113 (602), if there is no writing history (603: NO), a predetermined data (all “0” regarding user data) is created in the cache section 106 (604). This created data is transferred from the cache section 106 to the host device 101 (606). Thereafter, the host device 101 is reported of the end of the reading process (607) and the reading process is completed (608).

[0067] In other words, when there is no history of writing regarding the data stripe which is to be read, it means that there does not exist any data to be read on the magnetic disk side. Thus, data of zero is generated and temporarily stored in the cache section 106, and this data is sent to the host device 101. In this case, in order to read out data, the magnetic disk does not have to be accessed. Thus, with a format process that is being conducted is not interfered, and thus does not impede such format process.

[0068] The operation of reading data to the cache section from the magnetic disk when there is history of writing (603: YES) is originally a case where there is history of writing regarding a data stripe with the data stored in the magnetic disk (603: YES). In other words, the data stripe is either already formatted, or data has been written in it before. Therefore, as described in steps 504→507 in FIG. 5 showing the format process, the formatted data stripe to be read is not given a format request from the host device again. That is, when data is read from the magnetic disk to the cache section in step 605, with the format process that is being conducted is not interfered, and such format process is not impeded.

[0069] Next, a specific writing process is described. FIG. 7 is a flowchart showing the operations of the write means 110. The write means 110 operates when there is a write request from the host device 101 to the disk array device 102. Even if formatting is being conducted to the magnetic disk 108, this reading operation may be conducted.

[0070] First, as shown in FIG. 7, when the write means 110 receives a transfer request of write data (that is, data to be written) from the host device 101, it refers to the write history management table 113, and refers to the history flag 301 corresponding to the data stripe including the requested area and confirms it (701). As a result of the confirmation, when it is determined that there is no history of writing to the stripe column (702: NO), format data of the entire stripe column is generated in the cache section 106 (703) and stored. The area of the cache section 106 in which this format data is stored, stores the write data received from the host device 101 (704). Next, redundant data is created from data of the data stripe of the update cache section 106 (705) and stored, and thereafter the host device 101 is reported of the completion of the writing process (706). In this way, by creating the redundant data, data is assured. After setting the history flag 301 corresponding to the data stripe as having history of writing (707), writing process of the data stripe units to the magnetic disk 108 is actually conducted (708), and the series of process is completed (712).

[0071] On the other hand, when there is a history of writing to the data stripe (702: YES), in the cache section 106, a segment 203 as a data writing region (709) is secured, and write data which is received from the host device 101 (710) is stored in the segment 203. Regarding the data stripe including the segment in the magnetic disk, a series of operations of reading, revising, and writing (read modify write) is conducted, to complete the writing process (711) to the magnetic disk (712).

[0072] As described above, when there is no history of writing to the data stripe which is the object of writing (processes of steps 701 to 707), a series of continuous operations are conducted. That is, the data stripe to which data is written is not allowed to be intervened and the format process in respect to the data stripe is not to be conducted, from the recognition time that there is no history of writing in step 702 to the recognition time that there has been history of writing in step 707. If the data stripe to which data is written is set as having a history of writing in step 707, as described in steps 504 to 507 of FIG. 5 showing the format process, the data stripe which is the object of writing is not formatted. That is, when data is written to the magnetic disk in step 708, the format process that is being conducted is not interfered, and the format process is not impeded.

[0073] The data writing to the magnetic disk in the above step 711 is originally a case where there is a history of writing in the data stripe in the magnetic disk (702: YES). In other words, the data stripe is either already formatted, or has been written with data before. Therefore, as described in steps 504 to 507 in FIG. 5 that shows the format process, a format request is not provided again for the formatted data stripe that is an object of writing. That is, when data is written to the magnetic disk in step 711, the format process that is being conducted is not interfered, and does not impede the format process.

[0074] In the operation of the write means 110 described herein, the transition of a data structure of a data stripe created in the cache section 106 is shown in FIGS. 8A to 8C. FIG. 8A shows a data structure of a stage where format data for the all the data stripes is created in the cache section 106 (step 703 in FIG. 7). Thereafter, in a stage where write data is received from the host device (step 704 in FIG. 7), as shown in FIG. 8B, the received data is stored in a segment belonging to the second block from the left in the data stripe, and a new check code is given to the block. In a stage where a new redundant data is created (step 705 in FIG. 7), as shown in FIG. 8C, the new redundant data is stored in the rightmost block, and a new check code is given to the block.

[0075] According to this embodiment, in a state where an access lamp of the magnetic disk device is lighted, its characteristics may appear. In the case of a simple format of a conventional technique as described above, since only the portion corresponding to a header is rewritten, format process is completed instantaneously. Therefore the lighted state of the access lamp in this format process is instantaneous. Further, in a case of the above described conventional technique of format with data-ensuring function, logic format is actually conducted, thus lighting (flashing) of the access lamp continues during such time (several days in some cases).

[0076] According to the embodiment of the present invention, as compared to a conventional technique, since logic format is conducted after reporting of format completion to the host device, the lighting (flashing) of the access lamp continues during that time.

[0077] Further, according to this embodiment, when the disk array device responds to a request issued by the host device, its characteristic becomes significant. In the case of the above conventional technique of a simple format, since only the portion relating to a header is rewritten, the format process is completed instantaneously. Therefore, after issuing a request for format to the disk array device, the host device may issue an I/O request (request to read and write data) immediately. The disk array device may conduct an operation according to this I/O request. Further, in the case the above conventional technique of a format with data-ensuring function, since logic format is actually conducted, during that time (for several days in some cases) even if the host device issues an I/O request to the disk array device, it will receive an error (wait) response.

[0078] Compared to the conventional technique, according to an embodiment of the present invention, when the disk array device receives a format request from the host device, it instantly reports completion of format to the host device, and thereafter actually conducts logic format. Therefore, after the host device issues a format request, it instantly receives report of format completion, and may issue an I/O request to the disk array device. As in the above described embodiment, the disk array device conducts a process according to this I/O request, and continues the process of logic format in the background.

[0079] In the format process of this embodiment, the write history management table is referred to confirm whether or not there has been a writing process to the data stripe. As a result of this confirmation, when the writing process is completed, format process of the stripe is not conducted. During this format process, when a request to conduct reading process and/or writing process is received from an external device, the write history management table is referred. As a result of this reference, in the case the writing process of the stripe is completed, that is, only in the case this stripe is not an object of process of the format process, the disk array device is accessed and the reading process and/or writing process is conducted to the stripe. Therefore, the format process in a conducting state is not impeded, and it is possible to conduct reading process and/or writing process of data with the external device.

[0080] Further, a format process that has both features of the two kinds of conventional formatting, the simple format and the format with the data-ensuring function, may be realized. That is, this format process may have both an instant completion of formatting which is a feature of simple format, and high reliability of format with data-ensuring function. For example, a disk array device having a plurality of magnetic disks requires formatting of a user data region as an initial operation at the time the system is installed. In this case, since format completion is instantaneously reported in respect to the format request from the host device, it becomes possible to answer the I/O request from the high device at that time. In actuality, after reporting of format completion, I/O request is received from the host device, and format with the data-ensuring function of the magnetic disk is gradually proceeded.

[0081] Further, when a request to read data (that is, data to be read) is received, if there is no history of writing for the data stripe that is to be an object of reading, it means there is no data to read at the magnetic disk side. Thus, data of zero is created and temporarily stored in the cache section, and this data is sent to the host device. In this case, the magnetic disk is not accessed to read data. Therefore, the format process that is being conducted is not interfered, and the format process is not impeded.

[0082] On the other hand, a data reading operation from the magnetic disk to the cache section when there is a history of writing regarding the data stripe that is to be an object of reading is a case where there is originally a history of writing to the data stripe to which the data is stored in the magnetic disk. That is, the data stripe is either already formatted, or has been written with data before. Therefore, a format request is not given again to the formatted data stripe that is to be an object of reading. That is, when data is read to the cache section from the magnetic disk, it does not interfere with the format process that is being conducted, and such format process is not impeded.

[0083] Further, when data writing request is received, when there is no history of writing to the data stripe that is an object of writing, the operation of format to this data stripe is prohibited. That is, the data stripe to be written to is treated as being prohibited to be processed, during the time that it is known there is no history of writing until it is updated as having a history of writing, and process of format is not conducted to the data stripe. If the data stripe to be written to does not have a history of writing, format process is not conducted to this data stripe. That is, while data is written to the magnetic disk, format process that is in a conducting state is not interfered, and such format process is not impeded.

[0084] On the other hand, when there is a history of writing in the data stripe of the magnetic disk (702: YES), the data stripe is already formatted, or has been written with data before. Therefore, for a formatted data stripe that is an object of writing, a format request is not given again. That is, when writing data to the magnetic disk, the format process that is being conducted is not interfered, and such format process is not impeded.

[0085] Note that, this invention has been specifically explained in embodiment modes, but this invention is not limited to the embodiment mode, and may be changed in various ways without departing from the true spirit of the invention.

[0086] A highly reliable format process maybe conducted, while receiving and processing an I/O request from the host device.

[0087] Next, other inventions of this application are described using FIGS. 9 to 16.

[0088]FIG. 9 shows a schematic structure of a disk array device described as an embodiment of a control device of the present invention. Disk array device 901 comprises a control memory (not shown), a cache memory 903, four magnetic disks 905 as storage devices, and a disk controller 907 that controls the magnetic disks 905. The disk controller 907 comprises a data update information storage region 909 which stores information related to history of writing data of the magnetic disks 905, and a drive controller 911 which controls the magnetic disks 905.

[0089] <Embodiment 2>

[0090] As shown in FIG. 10, in this embodiment each of the four magnetic disks 905 are provided with a storage unit referred to as a data block 1001. Further, the data blocks 1001 in different magnetic disks 905 form a plurality of groups referred to as a data stripe 1003, and as shown in FIG. 11, the disk array device 901 stores whether or not data has been written in the past of each data stripe 1003 (history of writing data) in a control memory. In FIG. 11, for example, the value of “0” set in the data update information storage region 909 of bit 1 shows that data has not been written even once to the data stripe 1003 in the magnetic disk 905 which corresponds to bit 1. On the contrary, if “1” is set in the data update information storage region 909, it shows that data has been written at least once to the data stripe 1003.

[0091]FIG. 12 is a flowchart explaining the operations of the disk array device 901 in writing data to the magnetic disk.

[0092] When write data and a data writing request to a data block 1001 (for example, data block 1 and 2) in a data stripe 1003 (for example, data stripe 1) of a magnetic disk 905 is sent from an external device (not shown), the disk controller 907 writes the write data to the cache memory 903.

[0093] Next, the disk controller 907 checks whether there is writing data for all data blocks 1001 which form the data stripe 1003 to which the data block 1001 as an object of writing belongs, that is, checks whether there exist write data to be written to all four data blocks 1001 (data blocks 1 to 4) in the data stripe 1003 (data stripe 1), at an appropriate timing such as the moment when responding to the write request (s1201). When there exist write data corresponding to all data blocks 1001, the drive controller 911 writes these write data to all data blocks 1001 of the magnetic disks 905 (s1203). Then, the disk controller 907 sets “1” in the data update information storage region 909 corresponding to the data stripe 1003 (data stripe 1) (s1213).

[0094] On the other hand, when in the cache memory 903 there does not exist writing data for all data blocks 1001 forming the data stripe 1003 to which the data blocks 1001 as writing object belong (s1201), first, the disk controller 907 refers to the contents (history of data writing) of the data update information storage region 909 corresponding to the data stripe 1003 (s1205).

[0095] When the value of writing history is “0”, that is, when data has not been written in the past, the disk controller 907 creates initialization data (for example, data such as “00”) to be written to the data blocks 1001 if the data blocks 1001 with no writing request (in this case data blocks 3 and 4) exist (s1209), and the drive controller 911 writes the four created data to the respective data blocks 1001 (data blocks 1 to 4) (s1211).

[0096] Next, the disk controller 907 sets “1” in the data update information storage region 909 corresponding to the data stripe 1003.

[0097] On the other hand, at the time when the data writing history is referred to (s1205), when this value is “1”, that is, when there is a data writing history, the driver controller 911 writes data obtained from the cache memory 903 to the predetermined data blocks 1001 (in this case data blocks 1 and 2) among the data blocks 1001 to which the respective data are written (s1207).

[0098] As described above, the disk array device 901 (control device) of the present invention writes initialization data to data blocks 1001 which are not yet formatted and formats it in writing data to the magnetic disk 905, so that there is no need to conduct a logic format at the time of initial installation.

[0099] Next, with the flowchart shown in FIG. 13, the process in a case that a data reading request is received from an external device is described.

[0100] When the disk controller 907 receives a request to read data on the magnetic disk 905 from the external device, first, it refers to the history of data writing of data stripe 1003 corresponding to a data read portion designated by this request (s1301). When the value of data writing history is “1”, that is, when there already is data writing to the data stripe 1003, the disk controller 907 reads the data from the magnetic disk 905 (s1303), and sends data to the external device (s1307).

[0101] On the other hand, when the value of data writing history is “0”, that is, when no data has been written in the past to the data stripe 1003 corresponding to the data read position designated in the request, the disk controller 907 creates initialization data corresponding to data stripe 1003 which is an object to be read (or reads from such as a control memory (s1305), and sends the initialization data to the external device (s1307).

[0102] In this way, when there is issued a read request to the data stripe 1003 in which data has not been initialized, the disk array device 901 sends initialization data instead of sending an error message. This mechanism is useful when, for example, the external device sends a data read request to the disk array device 901 at a time of IPL, etc., and processing at the external device side is not to be ended as error.

[0103] Incidentally, when data stored in a predetermined region of the magnetic disk 905 is to be copied to such as other regions or to other magnetic disks 905, if the above data writing history is used, copying may be efficiently carried out.

[0104]FIG. 14 is a flowchart explaining a copy process utilizing the data writing history. When the disk array device 901 receives a request for copying data on the magnetic disk 905 sent from the external device, first the data writing history information is referred to (s1401). When the value of data writing history information is “1”, that is, when there exists data writing history, the drive controller 911 reads data from the magnetic disk 905 and conducts a copy process regarding the data (s1403). On the other hand, when the data writing history information is “0”, that is when there is no data writing history, the operation is ended as it is.

[0105] <Embodiment 3>

[0106] As shown in FIG. 15, in this embodiment, one of the data blocks 1001 composing the data stripe 1003 shown in FIG. 10 is allotted as a parity block 701 (for example, parity block 1) in RAID.

[0107]FIG. 16 is a flowchart explaining the operations of the disk array device 901 in this embodiment. When a write data and a write request of the write data to the data blocks 1001 (for example, data blocks 1 and 2) in the data stripe 1003 of the magnetic disk 905 are sent from the external device, the disk controller 907 temporarily writes the write data to the cache memory 903.

[0108] The disk controller 907 checks whether there is writing data for all data blocks 1001 forming the data stripe 1003 to which the data block 1001 to be the object of writing belongs, that is, checks whether write data to be written to all data blocks 1001 (data blocks 1 to 3) in this data stripe 1003 is stored in the cache memory 903 (s1601).

[0109] When there exists write data to be written to all data blocks 1001 in the data stripe 1003 in the cache memory 903, the disk controller 907 calculates parity by using all write data (s1603).

[0110] Next, the drive controller 911 writes the calculated parity to the parity block 701 (parity block 1) in the magnetic disk 905 (magnetic disk 4) (s1604), and writes write data of the cache memory 903 to the data blocks 1001 (data blocks 1 to 3) of the magnetic disks 905 (magnetic disks 1 to 3) (s805). Then, “1” is set in the data update information storage region 909 corresponding to the data stripe 1003 (data stripe 1) (s1615), while in a case there does not exist writing data for all the data blocks 1001 which form the data stripe to which the data blocks 1001 to be an object of writing belong, the disk controller 907 first refers to the contents of the data update information storage region 909 (s1607).

[0111] When the value of data update information storage region 909 is “0”, that is, when no data has been written in the past, for data blocks 1001 which have no writing request, the disk controller 907 creates initialization data to be written to this data block 1001 (s1609).

[0112] Next, parity is calculated by using data to be written to the data block 1001 and the initial data that is created (s1611), and the calculated parity is written to the parity block 1003 (s1612). Then, the write data of the cache memory 903 and the initial data which is created are written to the data blocks 1001 of the magnetic disks 905 (s1613), and “1” is set in the data update information storage region 909 corresponding to the data stripe 1003 (s1615).

[0113] Further, when “O” is set in the data update information storage region 909 (s1607), that is, when no data has been written in the past, the disk controller 907 calculates parity using write data, data already written to the data blocks 1001 to which write data is to be written, and parity at that time (s1617), and writes the calculated parity in the parity block 701 (s1617). Then, the write data is written to the appropriate data block 1001 (s1619).

[0114] According to the present invention, use of a control device such as a disk array device is made possible without conducting a logic format at the time of initial installation.

[0115] There has been detailed description of the preferred embodiments of the present invention, and it is to be understood that various changes, replacements, exchanges are possible without departing from the true spirit and scope of the present invention as determined in the scope of the invention. 

What is claimed is:
 1. A disk array device connected to an external device, comprising a plurality of disk devices and a control device controlling the disk devices, said control device comprising: request receiving means for receiving a request from said external device; formatting means for conducting a format process to said disk device according to said received request; read means for conducting data reading process in response to said received request; write means for conducting data writing process in response to said received request; and a write history management table for recording history of said conducted writing process to said disk device in block units; wherein said formatting means refers to said write history management table, confirms whether or not there exists said writing process regarding said block to be formatted, conducts said format process to only said blocks to which writing processes have not been conducted, and records history of completing said writing process of said formatted blocks in said write history management table, and in a state of conducting said formatting means, when said request receiving means receives a request to conduct said reading process and/or writing process from said external device, said read means and/or write means refers to said write history management table, and only in a case that writing processes have been conducted to the block to be written in, accesses said disk array device to conduct said reading process and/or said writing process to said block.
 2. A disk array device as claimed in claim 1, comprising a cache memory for temporarily storing data, wherein in a state of conducting said formatting process, said request receiving means receives a request to conduct said reading process from said external device, said read means refers to said write history management table, and in a case that said writing processes have not been conducted to a block to be read, said read means creates predetermined data and stores in said cache memory, and send said data of said cache memory to said external device.
 3. A disk array device as claimed in claim 1 comprising a cache memory for temporarily storing data, wherein in a state of conducting said formatting process, said request receiving means receives a request to conduct said writing process from said external device, said write means refers to said write history management table, and in a case that writing processes have not been conducted to a block to be written, said write means stores said write data sent from said external device in said cache memory, and writes history of conducting said writing process of said block to be written in said write history management table.
 4. A disk array device claimed in claim 1, wherein said request receive means receives said request to conduct said format process from said external device, said formatting means reports the completion of said format process to said external device before actually conducting the format process to said disk device.
 5. A control method of a disk array device which has a plurality of disk devices and is connected to an external device, comprising: receiving a request to conduct a format process from said external device, referring to a write history management table in which histories of conducted writing processes are recorded in block units and confirming whether or not there exists data writing process of block to be written; conducting said format process to said blocks to which writing processes have not been conducted without conducting said format process to said blocks to which writing processes have been conducted, and recording a history of conducting said writing process to the formatted block in said write history management table; and in a state of conducting said format process, receiving a request to conduct a reading process and/or writing process from said external device, referring to said write history management table, and only in a case that writing processes have been conducted to said block, conducting said reading process and/or said writing process to said block.
 6. A control method of a disk array device as claimed in claim 5, said disk array device comprising a cache memory for temporarily storing data, comprising: receiving a request to conduct said reading process from said external device in a state of conducting said format process; referring to said write history management table; in a case that said writing processes have not been conducted to said block to be written, creating predetermined data, storing them in said cache memory, and sending said data of said cache memory to said external device.
 7. A control method of a disk array device as claimed in claim 5, said disk array device comprising a cache memory for temporarily storing data, comprising: receiving a request to conduct said writing process from said external device in a state of conducting said format process; referring to said write history management table; in a case that said writing processes have not been conducted to said block to be written, storing said write data sent from said external device in said cache memory, and recording a history of completing said writing process of said block in said write history management table.
 8. A control method of a disk array device as claimed in claim 5, comprising: receiving a request to conduct said format process from said external device by said request receiving means, and reporting the completion of said format process to said external device before said formatting means actually conducts said format process to said disk device.
 9. A control method of a control device controlling input and output of data to a plurality of storage devices, comprising: conducting input and output of data in block units partitioned in a storage region of a storage device; storing whether or not a writing of data has been conducted in the past regarding a plurality of data stripes formed by data blocks over the plurality of storage devices; and in a case that a writing has not been conducted to data stripes to which data blocks to be written belong when writing data to said storage device, writing said data to said data blocks to be written and initialization data to other data blocks belonging to the data stripe to which said data block belongs.
 10. A control method of a control device controlling input and output of data to a plurality of storage devices, comprising: conducting data input and output to a storage device through a cache memory; conducting input and output of data in block units partitioned in a storage region of a storage device; storing whether or not writing of data has been conducted in the past to a plurality of data stripes formed by data blocks over the plurality of storage devices; and in writing data to said storage device, writing data to be written of all data blocks to a storage device, when in a cache memory exist data to be written to all data blocks forming a data stripe to which said data blocks to be written belong, alternatively, writing said data to be written to said data block to be written in and initialization data to other data blocks belonging to the data stripe to which said data block to be written in belongs, when in a cache memory does not exist data to be written to all data blocks forming a data stripe to which data blocks to be written in belong and writing of data has not been conducted in the past to a data stripe to which the data block to be written in belongs.
 11. A control method of a control device as claimed in claim 9, comprising: receiving a request to read data from an external device connected to said control device with said control device; and in a case that a writing process has not been conducted in the past to said data stripe to which said data block to be read belongs, sending said initialization data to said external device.
 12. A control method of a control device as claimed in claim 10, comprising: receiving a request to read data from an external device connected to said control device with said control device; and in a case that a writing process has not been conducted in the past to said data stripe to which said data block to be read belongs, sending said initialization data to said external device.
 13. A control method of a control device as claimed in claim 9, comprising: operating said storage devices with RAID; and utilizing one of said data blocks in said data stripe as a parity block storing parity data.
 14. A control method of a control device as claimed in claim 10, comprising: operating said storage devices with RAID; and utilizing one of said data blocks in said data stripe as a parity block storing parity data.
 15. A control device controlling input and output of data to a plurality of storage devices, comprising: means inputting and outputting data in block units divided in a storage region of a storage device; means for storing whether or not a writing process has been conducted in the past to a plurality of data stripes which are formed of data blocks over said plurality of storage devices; and means for writing said data to a data block to be written, and writing initialization data to the other data blocks which belong to a data stripe to which said data block belongs, when a writing process has not been conducted in the past to a data stripe to which said data block to be written belongs, at a time of writing said data to said storage device.
 16. A control device controlling input and output of data to a plurality of storage devices, comprising: a cache memory used for input and output of data to said storage device, means for inputting and outputting data in block units divided in a storage region of said storage device; means for storing whether or not a writing process has been conducted in the past to a plurality of data stripes formed of data blocks over said plurality of storage devices; and means for writing data to be written to all data blocks in said storage device in a case that there exists in said cache memory said data to be written to all data blocks forming a data stripe to which a data block to be written belong, in writing data to a storage, and means for writing said data to a data block to be written, and for writing initialization data to the other data blocks belonging to said data stripe to which said data block belongs, in a case that there does not exist writing data of all data blocks forming said data stripe to which a data block to be written belongs, and when a writing process has not conducted in the past to said data stripe to which a data block to be written belong.
 17. A control method of a control device as claimed in claims 9, comprising: in a case that said control device copies data between said storage devices, copying data only in a data stripe to which a writing process has been conducted in the past, among said data stripes from which data is copied.
 18. A control method of a control device as claimed in claims 10, comprising: in a case that said control device copies data between said storage devices, copying data only in a data stripe to which a writing process has been conducted in the past, among said data stripes from which data is copied. 